Microsoft DirectX 8.1 (C++)

IDvdGraphBuilder::RenderDvdVideoVolume

The RenderDvdVideoVolume method completes building a filter graph according to user specifications for playing a DVD-Video volume.

Syntax

HRESULT RenderDvdVideoVolume(
  LPCWSTR lpcwszPathName,
  DWORD dwFlags,
  AM_DVD_RENDERSTATUS *pStatus
);

Parameters

lpcwszPathName

[in] Pointer to the path for the DVD-Video volume to play. Can be NULL.

dwFlags

[in] Member of the AM_DVD_GRAPH_FLAGS enumeration indicating the type of decoder—hardware or software or a mix of hardware and software) to include in the filter graph. Maximum hardware decoding (AM_DVD_HWDEC_PREFER) is the default.

pStatus

[out] Pointer to the retrieved AM_DVD_RENDERSTATUS structure, which returns indication of any failure.

Return Values

Returns an HRESULT value that depends on the implementation of the interface. The DirectShow implementation return values include the following:

Return code Description
E_INVALIDARG The dwFlags parameter specifies conflicting options, or pStatus is a bad pointer.
S_FALSE Graph has been built, but not perfectly. The pStatus parameter provides details of the problems.
S_OK Success. Playback graph built successfully, all streams rendered, and the DVD-Video volume was specified or found.
VFW_E_DVD_DECNOTENOUGH AM_DVD_HWDEC_ONLYor AM_DVD_SWDEC_ONLY was specified and there weren't enough hardware or software decoders to decode all streams.
VFW_E_DVD_RENDERFAIL Some basic error occurred in building the graph. Possibilities include the DVD Navigator filter or the video or audio renderer not instantiating, a trivial connection or pin enumeration failing, or none of the streams rendering.

Remarks

The AM_DVD_RENDERSTATUS structure reflects failure codes for this method. Reasons for this method returning S_FALSE include the following:

This method builds the graph without any knowledge of the DVD-Video file or volume to play. The DVD-Video graph builder builds the graph even if lpcwszPathName is NULL or if the DVD Navigator filter does not find a default DVD-Video volume to play. An application can later specify the volume by using the IDvdControl::SetRoot method.

See Also